"""
1. 编程：定义一个 Dog 类，类中属性有名字、年龄、性别，要求如下：
   (1) 提供一个带有三个参数的构造方法
   (2) 类中定义一个无参数的 play 方法：输出“宠物狗”
   (3) 类中定义一个带有一个参数的 play 方法，参数为  hours，打印输出玩的小时数
   (4) 测试，分别用无参数的构造法和有参数的构造方法创建对象，并对属性赋值，分别
   将对象的信息打印在控制台上，调用 play 方法。
"""
# class Dog:
#     def __init__(self,name,age,gender):
#         self.name = name
#         self.age = age
#         self.gender = gender
#
#     def play01(self):
#         print(f'宠物狗')
#
#     def play02(self,hours):
#         print(f'{self.name}玩的小时:{hours}')
#
#     def __str__(self):
#         return f'名字：{self.name}，年龄：{self.age}，性别：{self.gender}'
#
# if __name__ == '__main__':
#     s1=Dog('旺财',8,'公')
#     print(s1)
#     s1.play01()
#     s1.play02(12)

"""
2. 编程：定义一个交通工具类(Vehicle)，类中属性有商标(brand)、颜色(color)；要求如下：
   (1) 提供一个有参数的构造方法
   (2) 功能方法：移动方法(move() )，此方法一旦被调用，控制台显示”我已经启动”
   展示信息( showInfo() )，此方法，展示商标和颜色信息
   (3) 测试，创建一个交通工具对象，并为属性赋值；将对象的信息打印输出，并调用
   对象的方法。
"""
# class Vehicle:
#     def __init__(self,brand,color):
#         self.brand = brand
#         self.color = color
#
#     def move(self):
#         print(f'我已经启动')
#
#     def showInfo(self):
#         print(f'商标为：{self.brand}，颜色为：{self.color}')
#
#     def __repr__(self):
#         return f'{self.brand}牌子，颜色为{self.color}'
#
# if __name__ == '__main__':
#     s1=Vehicle('凤凰','白色')
#     print(s1)
#     s1.move()
#     s1.showInfo()

"""
3. 编程：模拟简单的计算器，定义一个类(Numbers)，类中定义两个整数类型的属性值 1(v1)和值 2(v2)；
   (1) 提供构造方法，可以为属性赋值  
   (2) 提供加( add() )、减( subtration() )、乘( multip() )、除( division() )功能方法
   (3) 测试，创建该类对象，并通过调用方法完成两个数值的加、减、乘、除运算
"""
class Numbers:
    def __init__(self, v1, v2):
        self.v1 = v1
        self.v2 = v2

    def add(self):
        return self.v1 + self.v2

    def subtration(self):
        return self.v1 - self.v2

    def multiplication(self):
        return self.v1 * self.v2

    def division(self):
        return self.v1 / self.v2

if __name__ == '__main__':
    s1 = Numbers(1, 2)
    print(s1.add())
    print(s1.subtration())
    print(s1.multiplication())
    print(s1.division())

"""
4. 编程：定义一个网络用户类(User 类)，需要处理的信息有用户名、用户密码 password、邮箱地址(email)，要求如下：
   (1) 提供带有两个参数的构造方法，为用户名和用户密码赋值，此时 email 采用默认的：用户名
     加上”@sina.com.cn”; 
   (2) 定义一个 show 方法，用于展示用户的信息，密码处理为 xxx
   (3) 测试，创建对象，并利用方法，展示用户的信息。
"""
class User:
    def __init__(self, name, password):
        self.name = name
        self.password = password
